<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
</head>

<body>
    <script>
        // RegExp(Regular Expression)
        // 作用：就是用来匹配查找string字符串的
        // 创建方式
        // 1. /pattern/
        // let re = /xx/

        // 2 new RegExp()
        // let re = new RegExp("pattern");

        // /pattern/与new RegExp("pattern")的区别
        // reg = /c{1}/;
        // reg = new RegExp("c{1}");

        // let test = 'abc';
        // reg = new RegExp(test);
        // reg = /test/;
        // str = 'testabc';
        // execReg(reg, str);


        // var reg = /test/;
        // var str = 'testString';
        // var result = reg.exec(str);
        // console.log(result);





        // reg = /c{1}/;
        // str = 'cainiao';
        // execReg(reg, str);


        // reg = /c{2}/;
        // str = 'cainiao';
        // execReg(reg, str);

        // reg = /c{2}/;
        // str = 'ccVC果冻爽';
        // execReg(reg, str);

        // reg = /c?/;
        // str = 'VC果冻爽';
        // execReg(reg, str);

        // reg = /(\.)+/;
        // str = 'bbs.blueidea.com';
        // execReg(reg, str);

        // reg = /^b|c.+/;
        // str = 'cainiao';
        // execReg(reg, str);

        // reg = /(^b)|c.+/;
        // str = 'bbs.blueidea.com';
        // execReg(reg, str);

        // reg = /^(b|c).+/;
        // str = 'bbs.blueidea.com';
        // execReg(reg, str);

        // reg = /\bc/;
        // str = '维生素c';
        // execReg(reg, str);

        // reg = /\s.+/;
        // str = 'This is a test String.';
        // execReg(reg, str)

        // reg = /(\w)\1/;
        // // reg = /\w\w/;
        // str = ' bbs.blueidea.com';
        // execReg(reg, str); // => bb


        // reg = /^(?:b|c).+/;
        // str = 'bbs.blueidea.com';
        // execReg(reg, str);

        // reg = /cainiao(?=8)/;
        // reg = /cainiao8$/;
        // reg = /cainiao8/;
        // str = 'cainiao8abc';
        // execReg(reg, str);

        // let name = 'aaa bbb ccc';
        // let uw = name.replace(/\b\w+\b/g, function (word) {
        //     return word.substring(0, 1).toUpperCase() + word.substring(1);
        // });
        // console.log(uw);

        // name = '"a", "b"';
        // let res = name.replace(/"([^"]*)"/g, "'$1'"); // 'a' 'b'

        // console.log(res);

        function execReg(reg, str) {
            var result = reg.exec(str);
            console.log(result);
        }


        // 实战

        // 1:匹配结尾的数字
        // 匹配数字：\d、[0-9]
        // 结尾：$
        // let re = /\d+$/
        // let str = '3SFASDF92';
        // execReg(re, str);

        // 2. 统一空格个数
        // 字符串内如有空格，但是空格的数量可能不一致，通过正则将空格的个数统一变为一个。
        // 例如："蓝 色    理      想"
        // 变成："蓝 色 理 想"
        // let str = "蓝 色    理      想";
        // let str2 = str.replace(/\s+/g, " ");
        // console.log(str2);

        // 3. 判断字符串是不是由数字组成
        // function isDigital(str){
        //     return !/\D/.test(str);
        // }

        // console.log(isDigital("123456")); // => true
        // console.log(isDigital("123456abc")); // => false

        // function isDigit(str) {
        //     var reg = /^\d*$/;
        //     return reg.test(str);
        // }
        // var str = "7654321";
        // document.write(isDigit(str));
        // var str = "123test123";
        // document.write(isDigit(str));

        // 4. 电话号码正则
        // 要求：区号3-4位，电话7-8位，分机号可有可无，如果有3-4位
        // 区号、电话、分机号中间使用-连接
        // 比如：0451-12345678-1234

        // let reg = /\d{3,4}-\d{7,8}(-\d{3,4})?/;
        // let str = "0451-12345678-1234";
        // execReg(reg, str);

        // 5. 手机号码正则表达式
        // 要求：忽略前面的0，支持130-139，150-159,忽略前面0之后判断它是11位的。
        // 比如：013012345678 ， 15012345678

        // let reg = /0?(13|15)\d{9}/;
        // let reg = /0?1(3|5)\d{9}/;  // [35]
        // let str = "15012345678";
        // execReg(reg, str);

        // 6. 使用正则表达式实现删除字符串中的首尾空格
        // 比如："  ab c  " => "ab c"
            function trim(str){
                return str.replace(/^\s*|\s*$/g, "");
            }

            console.log(trim("  ab c  ")); // => "ab c"

    </script>
</body>

</html>